package com.aop.test;

import java.lang.reflect.Proxy;

/** 
 *
 * @version 1.0 
 * @author hktry
 * @Email 13117011726@163.com
 * Descriptions： AopTest1.java
 * Company： 浙江祥生物业服务有限公司
 * @date 2017年2月21日
 */
/**
 * 使用动态代理:接口+类+切入逻辑反射生成代理类
 * 
 * @author hktry
 *
 */
public class AopTest1 {
	public static void main(String[] args) {
		// 需要被代理的接口
		Class[] proxsInterface = new Class[] { IBusiness.class, IBusiness2.class };
		//构建aop的advice，传入业务的实例
		LogInvocationHandler i=new LogInvocationHandler(new Business());
		//生成代理类的字节码加载器
		ClassLoader classLoader =AopTest1.class.getClassLoader();
		//织入器，织入代码并生成代理类
		IBusiness2 proxyBusiness=(IBusiness2) Proxy.newProxyInstance(classLoader, proxsInterface, i);
		proxyBusiness.doSomeThing2();
		System.out.println("-------");
		((IBusiness)proxyBusiness).doSomeThing();
	}
}
